﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using V = Science.Mathematics.VectorCalculus;

namespace VectorCalculus5Ed.Chapter4.Section1
{
    public class Example03
    {
        public Example03()
		{
		}
		private string result;
		public string Result
		{
			get{return result;}
		}
        public void Compute()
        {
            V.Function.ToLastType<double, double[]> f
                = new V.Function.ToLastType<double, double[]>(func);
            V.Path p = new V.Path(f);
            V.Velocity v = new V.Velocity(p, 1.0);
            v.Compute();
            result += v[0].ToString() + "\r\n";
            result += v[1].ToString() + "\r\n";
            result += v.Speed.ToString() + "\r\n";
            double ans = 3.0 * Math.Abs(Math.Sin(1.0)) * Math.Abs(Math.Cos(1.0));
            result += ans.ToString() + "\r\n";
        }
        private double[] func(double t)
        {
            double[] c = new double[2];
            c[0] = Math.Cos(t) * Math.Cos(t) * Math.Cos(t);
            c[1] = Math.Sin(t) * Math.Sin(t) * Math.Sin(t);
            return c;
        }
    }
}
/*
-0.736943244650931
1.14772110185196
1.36394614023902
1.36394614023852
*/